home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / info / hm--html-mode.info-2.z / hm--html-mode.info-2
Encoding:
GNU Info File  |  1998-05-21  |  42.9 KB  |  928 lines

  1. This is Info file ../info/hm--html-mode.info, produced by Makeinfo
  2. version 1.68 from the input file hm--html-mode.texi.
  3.  
  4.    This file documents the Elisp package `hm--html-menus'.
  5.  
  6.    Copyright (C) 1997 Heiko Mⁿnkel
  7.  
  8.    Permission is granted to make and distribute verbatim copies of this
  9. manual provided the copyright notice and this permission notice are
  10. preserved on all copies.
  11.  
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided also
  14. that the sections entitled "Distribution" and "General Public License"
  15. are included exactly as in the original, and provided that the entire
  16. resulting derived work is distributed under the terms of a permission
  17. notice identical to this one.
  18.  
  19.    Permission is granted to copy and distribute translations of this
  20. manual into another language, under the above conditions for modified
  21. versions, except that the sections entitled "Distribution" and "General
  22. Public License" may be included in a translation approved by the author
  23. instead of in the original English.
  24.  
  25. 
  26. File: hm--html-mode.info,  Node: Defining The Drag And Drop Actions,  Next: The Mouse Bindings,  Prev: Drag And Drop Customization,  Up: Drag And Drop Customization
  27.  
  28. Defining The Drag And Drop Actions
  29. ----------------------------------
  30.  
  31.    The drag and drop actions are commands which are called after an
  32. internal drag and drop. They depend on the source and the destination
  33. of the drag and drop. Drag and drop actions are defined by the variable:
  34.  
  35.    * `idd-actions': A list with actions, depending on the source and the
  36.      destination of the drag and drop command.
  37.  
  38.    The list looks like:
  39.      '((<DESTINATION-SPECIFICATION-1> (<SOURCE-SPECIFICATION-1> <ACTION-1-1>)
  40.                                  (<SOURCE-SPECIFICATION-2> <ACTION-1-2>)
  41.                                                  :
  42.         )
  43.        (<DESTINATION-SPECIFICATION-2> (<SOURCE-SPECIFICATION-1> <ACTION-2-1>)
  44.                                  (<SOURCE-SPECIFICATION-2> <ACTION-2-2>)
  45.                                                  :
  46.         )
  47.                                :
  48.        )
  49.    The <SOURCE-SPECIFICATION> looks like the following:
  50.      '([(<SPECIFICATION-TYPE> <VALUE>)])
  51.    with
  52.     <SPECIFICATION-TYPE> :==
  53.           `idd-if-minor-mode-p' | `idd-if-buffer-name-p' |
  54.           `idd-if-region-active-p' | `idd-if-url-at-point-p' |
  55.           `idd-if-major-mode-p' | `idd-if-variable-non-nil-p' |
  56.           `idd-if-dired-file-on-line-p' |
  57.           `idd-if-dired-no-file-on-line-p' | `idd-if-local-file-p' |
  58.           `idd-if-buffer-name-p' | `idd-if-modifiers-p' | ...
  59.  
  60.    The <SPECIFICATION-TYPE> - functions must have two arguments. The
  61. first one is the source or destination and the second is the <VALUE>.
  62. It must return `nil', if the test wasn't successful, and a number (in
  63. general 1), which specifies the weight of the test function. The
  64. weights of all single tests are added to a summary weight and assigned
  65. to the action. The action with the highest weight is called from the
  66. action handler. Look at the definition of `idd-if-major-mode-p',
  67. `idd-if-minor-mode-p' and so on for examples. Look at the function
  68. `idd-get-source-or-destination-alist', if you want to know the
  69. structure of the `source-or-destination' argument of these functions.
  70.  
  71.    The <DESTINATION-SPECIFICATION> looks like <SOURCE-SPECIFICATION>,
  72. but in general it could be set to `nil' in mode specific idd-action
  73. lists.
  74.  
  75.    If <DESTINATION-SPECIFICATION-1> or <SOURCE-SPECIFICATION-1> is set
  76. to `nil', then every source or source matches. `idd-actions' is a
  77. buffer local variable, which should be at least mode depended. So if
  78. the <DESTINATION-SPECIFICATION-1> is set to `nil' it says, that the
  79. destination buffer must only have a specific mode. However, it's also
  80. possible to define a general `idd-actions' list, where the destination
  81. mode is specified by `idd-if-major-mode-p'.
  82.  
  83.    <ACTION> is a function which has two arguments. The first specifies
  84. the source and the second the destination. Look at the function
  85. definition of `idd-action-copy-region' and
  86. `idd-action-copy-replace-region'. They are examples for such actions.
  87.  
  88.    The following is an example for `hm--html-mode':
  89.  
  90.      (defvar idd-actions
  91.        '((nil (((idd-if-major-mode-p . dired-mode)
  92.                 (idd-if-dired-file-on-line-p . ".*\\.\\(gif\\)\\|\\(jpq\\)"))
  93.                hm--html-idd-add-include-image-from-dired-line)
  94.               (((idd-if-major-mode-p . dired-mode)
  95.                 (idd-if-dired-no-file-on-line-p . nil))
  96.                hm--html-idd-add-file-link-to-file-on-dired-line)
  97.               (((idd-if-major-mode-p . dired-mode)
  98.                 (idd-if-dired-no-file-on-line-p . t))
  99.                hm--html-idd-add-file-link-to-directory-of-buffer)
  100.               (((idd-if-major-mode-p . w3-mode)
  101.                 (idd-if-url-at-point-p . t))
  102.                hm--html-idd-add-html-link-from-w3-buffer-point)
  103.               (((idd-if-major-mode-p . w3-mode))
  104.                hm--html-idd-add-html-link-to-w3-buffer)
  105.               (((idd-if-local-file-p . t))
  106.                hm--html-idd-add-file-link-to-buffer)))
  107.  
  108. 
  109. File: hm--html-mode.info,  Node: The Mouse Bindings,  Next: The Drag And Drop Mouse Pointer,  Prev: Defining The Drag And Drop Actions,  Up: Drag And Drop Customization
  110.  
  111. The Mouse Bindings
  112. ------------------
  113.  
  114.    The following three variables determine the mouse bindings and the
  115. mouse behaviour for the internal drag and drop package:
  116.  
  117.    * `idd-global-mouse-keys': The mouse keys for the command
  118.      `idd-mouse-drag-and-drop'.  The command `idd-mouse-drag-and-drop'
  119.      is bound during the loading of the package
  120.      `internal-drag-and-drop' to these keys in the global keymap. The
  121.      drag and drop action must be bound global, because the drag and
  122.      drop action must be started by a click in the source buffer.
  123.      Therefore no action will be performed if the mouse keys are not
  124.      bound to `idd-mouse-drag-and-drop' in the destination buffer.
  125.  
  126.      Set it to `nil', if you don't want to bind this function during
  127.      loading.
  128.  
  129.      If the command is already bound in the global keymap during
  130.      loading, then this key sequence will not be bound.
  131.  
  132.      By default the mouse binding is <meta> <control> <button1>.
  133.  
  134.    * `idd-global-help-mouse-keys': The mouse keys for the command
  135.      `idd-help-mouse-drag-and-drop'.  The command
  136.      `idd-help-mouse-drag-and-drop' is bound during the loading of the
  137.      package `internal-drag-and-drop' to these keys in the global
  138.      keymap.
  139.  
  140.      Set it to `nil' if you don't want to bind this function during
  141.      loading.
  142.  
  143.      If the command is already bound in the global keymap during
  144.      loading, then this key sequence will not be bound.
  145.  
  146.      By default the mouse binding is <meta> <control> <button3>.
  147.  
  148.    * `idd-drag-and-drop-mouse-binding-type': The type of the drag and
  149.      drop mouse binding.  The value may be `click' or
  150.      `press-button-during-move'.  A value of `click' means that you
  151.      have to click over the source, release the button and click it
  152.      again over the destination.  A value of `press-button-during-move'
  153.      means that you have to press the button down over the source and
  154.      hold it until the mouse pointer is over the destination.
  155.  
  156.      The *disadvantage* of the `press-button-during-move' type compared
  157.      with the `click' type is that you can't select a destination
  158.      region, and therefore a drag and drop action depending on a
  159.      selected region can't be started with that type of mouse binding.
  160.  
  161. 
  162. File: hm--html-mode.info,  Node: The Drag And Drop Mouse Pointer,  Prev: The Mouse Bindings,  Up: Drag And Drop Customization
  163.  
  164. The Drag And Drop Mouse Pointer
  165. -------------------------------
  166.  
  167.    In the XEmacs the mouse pointer glyph (shape) can be set to any
  168. glyph. This is used during the drag and drop command to indicate, that
  169. the command is active. There exists the following three variables to
  170. customize this:
  171.  
  172.    * `idd-mouse-pointer-image': The name of the xbm file with the mouse
  173.      pointer image. By default this is the file `drop'. There exists
  174.      also a file called `dropmsk', which contains the mask image. The
  175.      mask file is loaded automaticly.
  176.  
  177.    * `idd-data-directory': The name fo the directory, where the file
  178.      `idd-mouse-pointer-image' is searched. By default this is the
  179.      subdirectory `idd' in the XEmacs install directory
  180.      `data-directory'.
  181.  
  182.    * `idd-overwrite-mouse-pointers': A list with pointer glyph
  183.      variables, which should be overwritten by the
  184.      `idd-drag-and-drop-pointer-glyph'. If it is nil, the pointer wont
  185.      be changed. Currently it must be nil in the Emacs.
  186.  
  187.    If one of the variables `idd-mouse-pointer-image' or
  188. `idd-data-directory' is changed, the command
  189. `idd-make-drag-and-drop-pointer-glyph' must be called. This command
  190. builds the mouse pointer glyph, which is stored in
  191. `idd-drag-and-drop-pointer-glyph'.
  192.  
  193.    I don't know how to set the the mouse pointer in the Emacs to a drag
  194. and drop image. Any hints for doing this are welcome.
  195.  
  196. 
  197. File: hm--html-mode.info,  Node: The Drag And Drop Commands,  Prev: Drag And Drop Customization,  Up: Internal Drag And Drop
  198.  
  199. The Drag And Drop Commands
  200. ==========================
  201.  
  202.    There are 2 groups of commands. The first contains commands which
  203. perform the drag and drop action and the second displays help messages
  204. about a possible drag and drop action.
  205.  
  206. * Menu:
  207.  
  208. * Performing The Drag And Drop Action::
  209. * Displaying Help On Drag And Drop::
  210.  
  211. 
  212. File: hm--html-mode.info,  Node: Performing The Drag And Drop Action,  Next: Displaying Help On Drag And Drop,  Prev: The Drag And Drop Commands,  Up: The Drag And Drop Commands
  213.  
  214. Performing The Drag And Drop Action
  215. -----------------------------------
  216.  
  217.    The following five commands perform internal drag and drop actions:
  218.  
  219.    * `idd-mouse-drag-and-drop': Performs a drag and drop action.  It
  220.      calls the command `idd-mouse-drag-and-drop-click' or
  221.      `idd-mouse-drag-and-drop-press-button-during-move' depending on the
  222.      value of `idd-drag-and-drop-mouse-binding-type'. However you've set
  223.      this, you start a drag and drop action with this command by
  224.      pressing down its mouse button over the source. This command is
  225.      bound by default to a global mouse key sequence. *Note The Mouse
  226.      Bindings::.
  227.  
  228.    * `idd-start-mouse-drag-and-drop': Starts a drag and drop command.
  229.      This command could be used to start a drag and drop command
  230.      without a button event. Therefore this should not be bound
  231.      directly to a mouse button. This command can be used to start a
  232.      drag and drop action with a click on a menu item or tool bar icon.
  233.      After that you have to press a mouse button over the source. The
  234.      rest depends on the value of
  235.      `idd-drag-and-drop-mouse-binding-type', as with the command
  236.      `idd-mouse-drag-and-drop'.
  237.  
  238.    * `idd-help-start-action': It is possible to display a help buffer
  239.      with a message in it, which describes the action instead of
  240.      performing it immediately (*note Displaying Help On Drag And
  241.      Drop::.). In this case you can perform the action by clicking on a
  242.      special extent in the help buffer, which runs this command.
  243.  
  244.    * `idd-mouse-drag-and-drop-press-button-during-move': Performs a drag
  245.      and drop action in a more traditional way than
  246.      `idd-mouse-drag-and-drop-click'. First you press the button over
  247.      the source and then move with the depressed button to the
  248.      destination, where you release the button.  This must be bound to a
  249.      mouse button. The `SOURCE-EVENT' must be a `button-press-event'.
  250.  
  251.      The disadvantage of this command compared with the command
  252.      `idd-mouse-drag-and-drop-click' is, that you can't select a
  253.      destination region.
  254.  
  255.      You should bind the command `idd-mouse-drag-and-drop' instead of
  256.      this one, because it's then possible to switch between both drag
  257.      and drop behaviours by changing only one variable.
  258.  
  259.    * `idd-mouse-drag-and-drop-click': Performs a drag and drop action in
  260.      a more useful way than
  261.      `idd-mouse-drag-and-drop-press-button-during-move'. First you
  262.      click on the source and then on the destination.  This must be
  263.      bound to a mouse button. The `SOURCE-EVENT' must be a
  264.      `button-press-event'.
  265.  
  266.      You should bind the command `idd-mouse-drag-and-drop' instead of
  267.      this one, because it's then possible to switch between both drag
  268.      and drop behaviours by changing only one variable.
  269.  
  270. 
  271. File: hm--html-mode.info,  Node: Displaying Help On Drag And Drop,  Prev: Performing The Drag And Drop Action,  Up: The Drag And Drop Commands
  272.  
  273. Displaying Help On Drag And Drop
  274. --------------------------------
  275.  
  276.    It's possible to display a buffer with a help message describing the
  277. action being considered before actually performing it. To perform the
  278. action, you then click on a special extent in the help buffer. To get
  279. the help buffer, you do the same things as you do to perform the action
  280. itself. Only the mouse key differs. There are two commands for this:
  281.  
  282.    * `idd-help-mouse-drag-and-drop': Displays help about the drag and
  283.      drop action. It works similarly to `idd-mouse-drag-and-drop'
  284.      (*note Performing The Drag And Drop Action::.).
  285.  
  286.      By default this command is globally bound to <meta> <control>
  287.      <button3>. This may be changed with the variable
  288.      `idd-global-help-mouse-keys' (*note The Mouse Bindings::.).
  289.  
  290.    * `idd-start-help-mouse-drag-and-drop': Starts displaying help about
  291.      the drag and drop action. It works similarly to
  292.      `idd-start-mouse-drag-and-drop' (*note Performing The Drag And
  293.      Drop Action::.) and can be used to start the help by clicking on a
  294.      menu item or a tool bar icon.
  295.  
  296. 
  297. File: hm--html-mode.info,  Node: Template Minor Mode,  Next: Hints For Emacs 19 Users,  Prev: Internal Drag And Drop,  Up: Top
  298.  
  299. Template Minor Mode
  300. *******************
  301.  
  302.    There's a file called `tmpl-minor-mode.el' in the distribution of
  303. the package *hm--html-menus*. It provides functions to use templates
  304. for the `hm--html-mode' and also for other modes. It needs nothing from
  305. the rest of the package and therefore it can be used independently of
  306. `hm--html-mode'.
  307.  
  308. * Menu:
  309.  
  310. * What Are Templates::
  311. * Syntax Of Templates::
  312. * Template Customization::
  313. * Template Commands::
  314.  
  315. 
  316. File: hm--html-mode.info,  Node: What Are Templates,  Next: Syntax Of Templates,  Prev: Template Minor Mode,  Up: Template Minor Mode
  317.  
  318. What Are Templates
  319. ==================
  320.  
  321.    Templates are special pieces of text, which can be expanded by
  322. emacs. Expansion means that the template is replaced by something else,
  323. determined by evaluating lisp forms or emacs commands.  The expansion
  324. can be done automatically after the insertion of templates with the
  325. command `tmpl-insert-template-file' in a buffer or by hand with the
  326. commands `tmpl-expand-templates-in-buffer' or
  327. `tmpl-expand-templates-in-region'.
  328.  
  329.    Templates can be put together with normal text in a so called
  330. template file to provide prototype files. You should name these files
  331. with the following naming scheme:
  332.  
  333.              <FILE>.<TYPE>.tmpl
  334.  
  335.    where <FILE> is a string which describes for what the template could
  336. be used and <TYPE> the normal file extension, e.g. `c' for C- files or
  337. `html' for HTML- files.
  338.  
  339. 
  340. File: hm--html-mode.info,  Node: Syntax Of Templates,  Next: Template Customization,  Prev: What Are Templates,  Up: Template Minor Mode
  341.  
  342. Syntax Of Templates
  343. ===================
  344.  
  345.    The templates are marked with the sign ^@, which stands for the null
  346. character (\000). It can be inserted in a buffer with the keys `C-q
  347. C-SPC'. You can also use any other character or string of characters by
  348. changing the variable `tmpl-sign'.
  349.  
  350.    At the moment, there are 3 major types of templates:
  351.  
  352.   1. *Emacs Lisp function templates*: The expansion of such a template
  353.      evals a lisp form. It is possible to use functions or variables as
  354.      lisp forms. The following is a simple example:
  355.  
  356.           ^@LISP^@ (insert-file "~/.emacs") ^@END LISP^@
  357.  
  358.      inserts the contents of the file `~/.emacs' in the current buffer
  359.      during the expansion.
  360.  
  361.   2. *Emacs command templates*: The expansion of a command template
  362.      evals a template in the same way as an interactive command, which
  363.      is invoked with `M-x command'. For example:
  364.  
  365.           ^@COMMAND^@ insert-file ^@END COMMAND^@
  366.  
  367.      runs the interactive command `insert-file' during the expansion.
  368.  
  369.   3. *Template comments* Nothing will be evaluated during the expansion
  370.      of a template comment. It is only a comment. For example:
  371.  
  372.           ^@C^@ This is a comment
  373.  
  374.      The end of the comment is the end of the line. Therefore it has
  375.      the same syntax as a lisp or C++ comment.
  376.  
  377.    By default, a template will be deleted after its expansion, but
  378. without the linefeed. Look at the following examples:
  379.  
  380.    Before the expansion:
  381.  
  382.          Line before the template
  383.              ^@C^@ The Text of a comment template
  384.          Line after the template
  385.  
  386.    After the expansion:
  387.  
  388.        Line before the template
  389.  
  390.        Line after the template
  391.  
  392.    Templates can start in any column, and only the template will be
  393. deleted after its expansion.
  394.  
  395.    It is also possible to put an attribute list in a template. The
  396. attributes of the list control the deletion of the template. It may be
  397. that this will be extended in the future with other attributes.  The
  398. attribute list must be specified as an alist (assoc list) in the start
  399. tag of a template and after its type. Each element of the alist consists
  400. of the name of the attribute following its value.  If no attribute list
  401. is specified or if an attribute is missing, then the default values are
  402. used. At the moment there are the following 2 attributes:
  403.  
  404.   1. *don't delete attribute* (`DONT_DELETE'): If the value is t, then
  405.      the template will not be deleted after its expansion. If the value
  406.      is nil then the template will be deleted. The default is nil. For
  407.      example:
  408.  
  409.      Before the expansion:
  410.  
  411.               Line before the template
  412.               ^@LISP ((DONT-DELETE t))^@ (insert-file "~/.cshrc") ^@END LISP^@
  413.               Line after the template
  414.  
  415.      After the expansion:
  416.  
  417.               Line before the template
  418.               ^@LISP ((DONT-DELETE t))^@ (insert-file "~/.cshrc") ^@END LISP^@
  419.               Line after the template
  420.  
  421.      It was assumed, that the file `~/.cshrc' was empty !
  422.  
  423.   2. *delete line attribute* (`DELETE-LINE'): If the value is t, then
  424.      the linefeed before or after the template will be deleted. If the
  425.      value is nil then no linefeed will be deleted. The default is nil.
  426.      For example:
  427.  
  428.      Before the expansion:
  429.  
  430.               Line before the template
  431.               ^@LISP ((DELETE-LINE t))^@ (insert-file "~/.cshrc") ^@END LISP^@
  432.               Line after the template
  433.  
  434.      After the expansion:
  435.  
  436.               Line before the template
  437.               Line after the template
  438.  
  439.      It was assumed, that the file `~/.cshrc' was empty !
  440.  
  441.    These attributes can be combined. For example:
  442.  
  443.          ^@COMMAND ((DELETE-LINE t) (DONT-DELETE nil))^@
  444.          insert-file
  445.          ^@END COMMAND^@
  446.  
  447.    The last examples show also that whitespace (blanks, tabs, linefeeds)
  448. is allowed at most positions in a template.
  449.  
  450.    Look at the file `tmpl-minor-mode.el' for a description of the
  451. commands to expand templates.
  452.  
  453. 
  454. File: hm--html-mode.info,  Node: Template Customization,  Next: Template Commands,  Prev: Syntax Of Templates,  Up: Template Minor Mode
  455.  
  456. Template Customization
  457. ======================
  458.  
  459.    Since the XEmacs 19.15 and 20.2 a special package can be used for the
  460. customization of lisp packages. The internal drag and drop package uses
  461. now also this feature. Therefore you can set all user variables with the
  462. help of the Customize submenu, which can be selected in the Option menu.
  463. If you use it, the variables will currently be saved in a special
  464. customization file. Please look at the `NEWS' file or the info manuals
  465. of the XEmacs to find out more about the customization package.
  466.  
  467.    Templates may be used for all editing modes, not only for
  468. `hm--html-mode'. Therefore their general customization isn't done in
  469. `hm--html-configuration.el'. Template variables are defined in the file
  470. `tmpl-minor-mode.el' instead. You can set them in your `.emacs' or in
  471. one of the other emacs init files (e.g.  `default.el'). The following
  472. are the main variables for customization.
  473.  
  474.    * `tmpl-template-dir-list': A list of directories with template
  475.      files. If it is nil, the default-directory will be used.  If more
  476.      than one directory is specified, then the template filenames
  477.      should differ in all directories.
  478.  
  479.      This variable is used in the commands for inserting templates.
  480.      Look at `tmpl-insert-template-file-from-fixed-dirs' and at
  481.      `tmpl-insert-template-file'. The command
  482.      `tmpl-insert-template-file' uses only the car of the list (if it is
  483.      a list.)
  484.  
  485.    * `tmpl-filter-regexp': This defines a regular expression used for
  486.      filtering out non-template files in template directories. It is
  487.      used in the command `tmpl-insert-template-file-from-fixed-dirs' to
  488.      allow only the selection of files which match the regexp.  If it is
  489.      nil, then the Filter `".*\\.tmpl$"' is used.  Set it to `\".*\"'
  490.      if you want to disable the filter function or use the command
  491.      `tmpl-insert-template-file'.
  492.  
  493.    * `tmpl-automatic-expand': If you insert a template file with
  494.      `tmpl-insert-template-file-from-fixed-dirs' or with
  495.      `tmpl-insert-template-file', this variable is used. The templates
  496.      in the buffer will be automatically expanded if the variable is
  497.      set to t, which is the default.
  498.  
  499.    * `tmpl-sign': Thisdetermines the sign which marks the beginning and
  500.      the end of template expressions. By default it is set to the null
  501.      character (displayed in emacs as ^@). You can also set this to a
  502.      string. Be careful if you change it, so that the templates will
  503.      not be mixed up with other non-template text! Note: The expansion
  504.      function looks at the whole template, so that it is very unlikely
  505.      that the function will make a mistake.
  506.  
  507.    * `tmpl-minor-mode-map': The keymap for the template minor mode.
  508.  
  509. 
  510. File: hm--html-mode.info,  Node: Template Commands,  Prev: Template Customization,  Up: Template Minor Mode
  511.  
  512. Template Commands
  513. =================
  514.  
  515.    In this section the commands of the template package are described.
  516.  
  517. * Menu:
  518.  
  519. * Insert Of Template Files::
  520. * Expansion Of Templates::
  521. * Escaping Of Template Signs::
  522. * The Template Minor Mode::
  523.  
  524. 
  525. File: hm--html-mode.info,  Node: Insert Of Template Files,  Next: Expansion Of Templates,  Prev: Template Commands,  Up: Template Commands
  526.  
  527. Insert Of Template Files
  528. ------------------------
  529.  
  530.    The template package provides the following two commands for
  531. inserting template files in an emacs buffer.
  532.  
  533.    * `tmpl-insert-template-file': This command can be used to insert a
  534.      template file in the current buffer. It will expand the templates
  535.      in the buffer if `tmpl-automatic-expand' is set to `t'. You can set
  536.      a default directory for this command by setting the variable
  537.      `tmpl-template-dir-list'. *Note Template Customization::.
  538.  
  539.    * `tmpl-insert-template-file-from-fixed-dirs': The difference from
  540.      the simpler command `tmpl-insert-template-file' is that this
  541.      command will build a list for filename completion from a list of
  542.      predefined directories (look at `tmpl-template-dir-list'). The
  543.      filename completion list will also be filtered with the regular
  544.      expression defined by `tmpl-filer-regexp'. *Note Template
  545.      Customization::. You can set the directory list and/or the filter
  546.      differently in each mode where you use templates, so that you will
  547.      get in the completion list only template files which could be used
  548.      for the current mode.
  549.  
  550.      If you want to insert a template file with this command, which is
  551.      not in one of the directories from `tmpl-template-dir-list', then
  552.      you have to enter the string *"Change the directory"* instead of a
  553.      template file. This string is also in the completion list.
  554.  
  555.    Both commands can also be used as functions. In this case the
  556. template file with is directory path must be given to them as an
  557. parameter.
  558.  
  559.    You can also use commands like `insert-file' to insert template
  560. files and expand them by hand (*note Expansion Of Templates::.).
  561.  
  562. 
  563. File: hm--html-mode.info,  Node: Expansion Of Templates,  Next: Escaping Of Template Signs,  Prev: Insert Of Template Files,  Up: Template Commands
  564.  
  565. Expansion Of Templates
  566. ----------------------
  567.  
  568.    You can expand templates by hand or automatically after their
  569. insertion. *Note Insert Of Template Files::, for automatic expansion.
  570. Expansion by hand can be done with one of the following two functions:
  571.  
  572.    * `tmpl-expand-templates-in-region': Expands the templates in the
  573.      region. The region is established by the optional arguments `BEGIN'
  574.      and `END'. If the arguments are `nil', or if the function is called
  575.      interactively, then the current region will be used.
  576.  
  577.    * `tmpl-expand-templates-in-buffer': Expands all templates in the
  578.      current buffer.
  579.  
  580.    Both commands are bound to keys in the `tmpl-minor-mode'. *Note The
  581. Template Minor Mode::.
  582.  
  583. 
  584. File: hm--html-mode.info,  Node: Escaping Of Template Signs,  Next: The Template Minor Mode,  Prev: Expansion Of Templates,  Up: Template Commands
  585.  
  586. Escaping Of Template Signs
  587. --------------------------
  588.  
  589.    It is possible to escape template signs in a buffer or in a region.
  590. Templates with escaped template signs are not expanded, but they are
  591. un-escaped by the expansion functions. Therefore it is possible to
  592. exclude single templates from the expansion by escaping them. Note: You
  593. can't escape a template twice. The commands which can be used for this
  594. are:
  595.  
  596.    * `tmpl-escape-tmpl-sign-in-region': Escapes all `tmpl-sign's (*note
  597.      Template Customization::.) with a `tmpl-sign' in a region. The
  598.      region is established by the optional arguments `BEGIN' and `END'.
  599.      If the arguments are `nil', or if the function is called
  600.      interactively, then the current region will be used.
  601.  
  602.    * `tmpl-escape-tmpl-sign-in-buffer': Same as
  603.      `tmpl-escape-tmpl-sign-in-region', but escapes all templates in the
  604.      whole buffer.
  605.  
  606.    Both commands are bound to keys in `tmpl-minor-mode'. *Note The
  607. Template Minor Mode::.
  608.  
  609. 
  610. File: hm--html-mode.info,  Node: The Template Minor Mode,  Prev: Escaping Of Template Signs,  Up: Template Commands
  611.  
  612. The Template Minor Mode
  613. -----------------------
  614.  
  615.    The template minor mode can be toggled with the command
  616. `tmpl-minor-mode'. The purpose of this mode is only to provide key
  617. bindings for some of the commands of the package `tmpl-minor-mode'. If
  618. you don't want to use the key bindings, you don't need this minor mode.
  619.  
  620.    Look at the key table `tmpl-minor-mode-map' (*note Template
  621. Customization::.) for the definition of the keys.
  622.  
  623.    It may be that I'll also provide a pulldown or popup menu for the
  624. minor mode in a future release.
  625.  
  626. 
  627. File: hm--html-mode.info,  Node: Hints For Emacs 19 Users,  Next: Bug Reports,  Prev: Template Minor Mode,  Up: Top
  628.  
  629. Hints For Emacs 19 Users
  630. ************************
  631.  
  632.    This package is tested with the GNU Emacs 19.34. The Emacs 19.34 has
  633. had not all features of the XEmacs. Therefore also some of the features
  634. of this package could not be implemeted in the Emacs 19.
  635.  
  636.    Please read also the Emacs 19 related file `README-EMACS-19'!
  637.  
  638.    The following is a list of missing features:
  639.  
  640.    * The capability to start an action from the help buffer. This is
  641.      only possible in the XEmacs, because in the Emacs 19.34 one can't
  642.      assign keymaps to a text region (overlay).
  643.  
  644.    * The keybindings of the drag and drop commands are not displayed in
  645.      the menus, because the Emacs 19 isn't able to handle the following
  646.      menu specification: `:keys "\\[idd-help-mouse-drag-and-drop]"'.
  647.  
  648.    * The function `file-remote-p' couldn't be implemeted, because of the
  649.      lack of the function `ange-ftp-ftp-p' in the ange-ftp package of
  650.      the Emacs 19.34.
  651.  
  652.    * The history variable determined by `tmpl-history-variable-name'
  653.      isn't used, because the function `read-file-name' doesn't support
  654.      it in the Emacs 19.
  655.  
  656.    * The mouse pointer shape (glyph) wont be changed in the Emacs 19
  657.      during a drag and drop command. For that a way is needed to set
  658.      the mouse pointer shape to an image.
  659.  
  660. 
  661. File: hm--html-mode.info,  Node: Bug Reports,  Next: Concept Index,  Prev: Hints For Emacs 19 Users,  Up: Top
  662.  
  663. Bug Reports
  664. ***********
  665.  
  666.    There's no software out there without bugs. This package contains
  667. software, therefore it has bugs. I (Heiko Mⁿnkel
  668. <muenkel@tnt.uni-hannover.de>) have inserted most of the bugs in this
  669. package by myself, but I've forgotten where. So please help me out of
  670. this disaster and send bug reports, if you've found one of these little
  671. animals. I'll try to do my very best to fix them and to insert new ones.
  672.  
  673.    If it's possible, you should use the command
  674.  
  675.              M-x hm--html-submit-bug-report
  676.  
  677.    There's also an entry in the pulldown menu for this.
  678.  
  679.    In some cases a backtrace would also be appropriate.
  680.  
  681.    If you can't send the report with this function, at least include
  682. the package version and your `Emacs'/`XEmacs' version.
  683.  
  684.    In the best of all worlds you would also include a patch to fix the
  685. bug.
  686.  
  687.    *Note*: It's not true that I've inserted the bugs as a marketing
  688. trick, so that you must buy the next version to get some of them fixed.
  689. This is false, because this software is free.
  690.  
  691. 
  692. File: hm--html-mode.info,  Node: Concept Index,  Next: Function Index,  Prev: Bug Reports,  Up: Top
  693.  
  694. Concept Index
  695. *************
  696.  
  697. * Menu:
  698.  
  699. * actions:                               Defining The Drag And Drop Actions.
  700. * add new html elements:                 Add New Elements.
  701. * automatic insert:                      Automatic Insert Of Information.
  702. * automounter path:                      Deleting Automounter Path Prefix.
  703. * bug report:                            Bug Reports.
  704. * changed comment:                       Automatic Insert Of Information.
  705. * color of help text:                    Marking Of Examples.
  706. * commands:                              Template Commands.
  707. * configuration <1>:                     Template Customization.
  708. * configuration <2>:                     Drag And Drop Customization.
  709. * configuration:                         Customization.
  710. * configuration files:                   Customization (Configuration) Files.
  711. * contents:                              Contents.
  712. * created comment:                       Automatic Insert Of Information.
  713. * customization <1>:                     Template Customization.
  714. * customization <2>:                     Drag And Drop Customization.
  715. * customization:                         Customization.
  716. * customization files:                   Customization (Configuration) Files.
  717. * date:                                  Automatic Insert Of Information.
  718. * displaying help on drag and drop:      Displaying Help On Drag And Drop.
  719. * drag and drop <1>:                     Internal Drag And Drop.
  720. * drag and drop:                         Drag And Drop.
  721. * drag and drop actions:                 Defining The Drag And Drop Actions.
  722. * drag and drop commands <1>:            Performing The Drag And Drop Action.
  723. * drag and drop commands:                The Drag And Drop Commands.
  724. * Emacs 19:                              Hints For Emacs 19 Users.
  725. * emacs info links:                      Links To Emacs Info Files.
  726. * escaping:                              Escaping Of Template Signs.
  727. * expansion:                             Expansion Of Templates.
  728. * expert menus:                          Switching Between Expert And Novice Menus.
  729. * favourite HTTP server:                 Your Favourite HTTP Server.
  730. * file gateway links:                    Links To Files.
  731. * font lock keywords:                    Font Lock Keywords.
  732. * font of help text:                     Marking Of Examples.
  733. * forms URL:                             URL For Forms And Image Tags.
  734. * FTP links:                             Links To FTP Servers.
  735. * General Public License:                License.
  736. * Gopher gateway links:                  Links To Gopher Servers.
  737. * help on drag and drop:                 Displaying Help On Drag And Drop.
  738. * hm-configuration.el:                   Where Are All The Customization Variables Defined.
  739. * hm-site-configuration-file.el:         Where To Put Site Specific Customization.
  740. * HTML doctype:                          HTML Doctype.
  741. * HTTP links:                            Links to WWW Servers.
  742. * image URL:                             URL For Forms And Image Tags.
  743. * indentation:                           Indentation.
  744. * installation:                          Installation.
  745. * internal drag and drop:                Internal Drag And Drop.
  746. * key bindings:                          The Template Minor Mode.
  747. * latin 1 characters:                    Latin 1 Characters.
  748. * license to copy hm--html-menus:        License.
  749. * links:                                 Defaults Used For Generating Links.
  750. * local program gateway links:           Links To The Local Program Gateway.
  751. * Mail folder links:                     Links To The Mail Gateway.
  752. * Mail gateway links:                    Links To The Mail Gateway.
  753. * mailto links:                          Links For Sending Mail.
  754. * meta element:                          Meta Element.
  755. * minor mode:                            The Template Minor Mode.
  756. * missing features in the Emacs 19:      Hints For Emacs 19 Users.
  757. * mouse bindings:                        The Mouse Bindings.
  758. * mouse pointer glyph:                   The Drag And Drop Mouse Pointer.
  759. * non standard html:                     Add New Elements.
  760. * novice menus:                          Switching Between Expert And Novice Menus.
  761. * overview:                              Overview.
  762. * package specific customization:        Where Are All The Customization Variables Defined.
  763. * performing drag and drop:              Performing The Drag And Drop Action.
  764. * prefix keys:                           Prefix Keys.
  765. * previewing HTML files:                 Previewing HTML Files.
  766. * program gateway links:                 Links To The Program Gateway.
  767. * psgml-html:                            Use With Other Major Modes.
  768. * pulldown menu names:                   Pulldown Menu Names.
  769. * signature:                             User Name/Signature.
  770. * site specific customization:           Where To Put Site Specific Customization.
  771. * template escaping:                     Escaping Of Template Signs.
  772. * template expansion:                    Expansion Of Templates.
  773. * template files:                        Insert Of Template Files.
  774. * template insert:                       Insert Of Template Files.
  775. * template minor mode:                   The Template Minor Mode.
  776. * template syntax:                       Syntax Of Templates.
  777. * templates <1>:                         What Are Templates.
  778. * templates <2>:                         Template Minor Mode.
  779. * templates:                             Templates.
  780. * use with other major modes:            Use With Other Major Modes.
  781. * use with psgml-html:                   Use With Other Major Modes.
  782. * user name:                             User Name/Signature.
  783. * user specific customization:           Where To Put User Specific Customization.
  784. * version:                               Overview.
  785. * WAIS gateway links:                    Links To WAIS Gateways.
  786. * WWW server links:                      Links to WWW Servers.
  787. * ~/.hm-html-configuration.el:           Where To Put User Specific Customization.
  788.  
  789. 
  790. File: hm--html-mode.info,  Node: Function Index,  Next: Variable Index,  Prev: Concept Index,  Up: Top
  791.  
  792. Function Index
  793. **************
  794.  
  795. * Menu:
  796.  
  797. * file-remote-p:                         Hints For Emacs 19 Users.
  798. * hm--html-minor-mode <1>:               Use With Other Major Modes.
  799. * hm--html-minor-mode:                   Overview.
  800. * hm--html-mode:                         Overview.
  801. * hm--html-submit-bug-report:            Bug Reports.
  802. * idd-help-mouse-drag-and-drop <1>:      Displaying Help On Drag And Drop.
  803. * idd-help-mouse-drag-and-drop:          The Mouse Bindings.
  804. * idd-help-start-action:                 Performing The Drag And Drop Action.
  805. * idd-make-drag-and-drop-pointer-glyph:  The Drag And Drop Mouse Pointer.
  806. * idd-mouse-drag-and-drop <1>:           Performing The Drag And Drop Action.
  807. * idd-mouse-drag-and-drop:               The Mouse Bindings.
  808. * idd-mouse-drag-and-drop-click:         Performing The Drag And Drop Action.
  809. * idd-mouse-drag-and-drop-press-button-during-move: Performing The Drag And Drop Action.
  810. * idd-start-help-mouse-drag-and-drop:    Displaying Help On Drag And Drop.
  811. * idd-start-mouse-drag-and-drop:         Performing The Drag And Drop Action.
  812. * tmpl-escape-tmpl-sign-in-buffer:       Escaping Of Template Signs.
  813. * tmpl-escape-tmpl-sign-in-region:       Escaping Of Template Signs.
  814. * tmpl-expand-templates-in-buffer <1>:   Expansion Of Templates.
  815. * tmpl-expand-templates-in-buffer:       What Are Templates.
  816. * tmpl-expand-templates-in-region <1>:   Expansion Of Templates.
  817. * tmpl-expand-templates-in-region:       What Are Templates.
  818. * tmpl-insert-template-file <1>:         Insert Of Template Files.
  819. * tmpl-insert-template-file:             What Are Templates.
  820. * tmpl-insert-template-file-from-fixed-dirs: Insert Of Template Files.
  821. * tmpl-minor-mode:                       The Template Minor Mode.
  822.  
  823. 
  824. File: hm--html-mode.info,  Node: Variable Index,  Prev: Function Index,  Up: Top
  825.  
  826. Variable Index
  827. **************
  828.  
  829. * Menu:
  830.  
  831. * hm--html-automatic-changed-comment:    Automatic Insert Of Information.
  832. * hm--html-automatic-create-modified-line: Automatic Insert Of Information.
  833. * hm--html-automatic-expand-templates:   Templates.
  834. * hm--html-automatic-update-modified-line: Automatic Insert Of Information.
  835. * hm--html-automatic-update-title-date:  Automatic Insert Of Information.
  836. * hm--html-bind-latin-1-char-entities:   Latin 1 Characters.
  837. * hm--html-changed-comment-prefix:       Automatic Insert Of Information.
  838. * hm--html-comment-indent:               Indentation.
  839. * hm--html-comment-infix:                Automatic Insert Of Information.
  840. * hm--html-created-comment-prefix:       Automatic Insert Of Information.
  841. * hm--html-delete-wrong-path-prefix:     Deleting Automounter Path Prefix.
  842. * hm--html-disable-indentation:          Indentation.
  843. * hm--html-expert:                       Switching Between Expert And Novice Menus.
  844. * hm--html-favorite-http-server-host-name: Your Favourite HTTP Server.
  845. * hm--html-file-path-alist:              Links To Files.
  846. * hm--html-font-lock-keywords:           Font Lock Keywords.
  847. * hm--html-font-lock-keywords-1:         Font Lock Keywords.
  848. * hm--html-font-lock-keywords-2:         Font Lock Keywords.
  849. * hm--html-frame-template-file:          Templates.
  850. * hm--html-ftp-hostname:port-alist:      Links To FTP Servers.
  851. * hm--html-ftp-hostname:port-default:    Links To FTP Servers.
  852. * hm--html-ftp-path-alist:               Links To FTP Servers.
  853. * hm--html-gopher-anchor-alist:          Links To Gopher Servers.
  854. * hm--html-gopher-doctype-alist:         Links To Gopher Servers.
  855. * hm--html-gopher-doctype-default:       Links To Gopher Servers.
  856. * hm--html-gopher-hostname:port-alist:   Links To Gopher Servers.
  857. * hm--html-gopher-hostname:port-default: Links To Gopher Servers.
  858. * hm--html-help-background:              Marking Of Examples.
  859. * hm--html-help-font:                    Marking Of Examples.
  860. * hm--html-help-foreground:              Marking Of Examples.
  861. * hm--html-html-doctype-version:         HTML Doctype.
  862. * hm--html-html-hostname:port-alist:     Links to WWW Servers.
  863. * hm--html-html-hostname:port-default:   Links to WWW Servers.
  864. * hm--html-html-path-alist:              Links to WWW Servers.
  865. * hm--html-idd-actions <1>:              Internal Drag And Drop.
  866. * hm--html-idd-actions:                  Drag And Drop.
  867. * hm--html-idd-create-relative-links:    Drag And Drop.
  868. * hm--html-info-hostname:port-alist:     Links To Emacs Info Files.
  869. * hm--html-info-hostname:port-default:   Links To Emacs Info Files.
  870. * hm--html-info-path-alist:              Links To Emacs Info Files.
  871. * hm--html-inter-tag-indent:             Indentation.
  872. * hm--html-intra-tag-indent:             Indentation.
  873. * hm--html-local-proggate-path-alist:    Links To The Local Program Gateway.
  874. * hm--html-mail-hostname:port-alist:     Links To The Mail Gateway.
  875. * hm--html-mail-hostname:port-default:   Links To The Mail Gateway.
  876. * hm--html-mail-path-alist:              Links To The Mail Gateway.
  877. * hm--html-mailto-alist:                 Links For Sending Mail.
  878. * hm--html-meta-name-alist:              Meta Element.
  879. * hm--html-minor-mode-prefix-key:        Prefix Keys.
  880. * hm--html-minor-mode-pulldown-menu-name: Pulldown Menu Names.
  881. * hm--html-mode-hook:                    Hook Variables.
  882. * hm--html-mode-prefix-key:              Prefix Keys.
  883. * hm--html-mode-pulldown-menu-name:      Pulldown Menu Names.
  884. * hm--html-modified-end-tag:             Automatic Insert Of Information.
  885. * hm--html-modified-insert-before:       Automatic Insert Of Information.
  886. * hm--html-modified-prefix:              Automatic Insert Of Information.
  887. * hm--html-modified-start-tag:           Automatic Insert Of Information.
  888. * hm--html-proggate-allowed-file:        Links To The Program Gateway.
  889. * hm--html-proggate-hostname:port-alist: Links To The Program Gateway.
  890. * hm--html-proggate-hostname:port-default: Links To The Program Gateway.
  891. * hm--html-signature-file:               User Name/Signature.
  892. * hm--html-site-config-file:             Where To Put Site Specific Customization.
  893. * hm--html-tag-name-alist <1>:           Add New Elements.
  894. * hm--html-tag-name-alist:               Indentation.
  895. * hm--html-template-dir:                 Templates.
  896. * hm--html-url-alist:                    URL For Forms And Image Tags.
  897. * hm--html-user-config-file:             Where To Put User Specific Customization.
  898. * hm--html-username:                     User Name/Signature.
  899. * hm--html-wais-hostname:port-alist:     Links To WAIS Gateways.
  900. * hm--html-wais-hostname:port-default:   Links To WAIS Gateways.
  901. * hm--html-wais-path-alist:              Links To WAIS Gateways.
  902. * hm--html-wais-servername:port-alist:   Links To WAIS Gateways.
  903. * hm--html-wais-servername:port-default: Links To WAIS Gateways.
  904. * html-sigusr1-signal-value:             Previewing HTML Files.
  905. * html-view-mosaic-command:              Previewing HTML Files.
  906. * HTML_CONFIG_FILE:                      Where Are All The Customization Variables Defined.
  907. * HTML_SITE_CONFIG_FILE:                 Where To Put Site Specific Customization.
  908. * HTML_USER_CONFIG_FILE:                 Where To Put User Specific Customization.
  909. * idd-actions <1>:                       Defining The Drag And Drop Actions.
  910. * idd-actions:                           Internal Drag And Drop.
  911. * idd-data-directory:                    The Drag And Drop Mouse Pointer.
  912. * idd-drag-and-drop-mouse-binding-type <1>: Performing The Drag And Drop Action.
  913. * idd-drag-and-drop-mouse-binding-type:  The Mouse Bindings.
  914. * idd-drag-and-drop-pointer-glyph:       The Drag And Drop Mouse Pointer.
  915. * idd-global-help-mouse-keys:            The Mouse Bindings.
  916. * idd-global-mouse-keys:                 The Mouse Bindings.
  917. * idd-mouse-pointer-image:               The Drag And Drop Mouse Pointer.
  918. * idd-overwrite-mouse-pointers:          The Drag And Drop Mouse Pointer.
  919. * tmpl-automatic-expand:                 Template Customization.
  920. * tmpl-filter-regexp:                    Template Customization.
  921. * tmpl-history-variable-name:            Hints For Emacs 19 Users.
  922. * tmpl-minor-mode-map:                   Template Customization.
  923. * tmpl-sign <1>:                         Template Customization.
  924. * tmpl-sign:                             Syntax Of Templates.
  925. * tmpl-template-dir-list:                Template Customization.
  926.  
  927.  
  928.